home *** CD-ROM | disk | FTP | other *** search
- Path: uunet!zephyr.ens.tek.com!tekgen!tekred!saab!billr
- From: billr@saab.CNA.TEK.COM (Bill Randle)
- Newsgroups: comp.sources.games
- Subject: v08i067: NetHack3 - display oriented dungeons & dragons (Ver. 3.0), Patch6n
- Message-ID: <4856@tekred.CNA.TEK.COM>
- Date: 22 Nov 89 19:56:20 GMT
- Sender: nobody@tekred.CNA.TEK.COM
- Lines: 1345
- Approved: billr@saab.CNA.TEK.COM
-
- Submitted-by: Izchak Miller <izchak@linc.cis.upenn.edu>
- Posting-number: Volume 8, Issue 67
- Archive-name: NetHack3/Patch6n
- Patch-To: NetHack3: Volume 7, Issue 56-93
-
-
-
- #! /bin/sh
- # This is a shell archive. Remove anything before this line, then unpack
- # it by saving it into a file and typing "sh file". To overwrite existing
- # files, type "sh file -c". You can also feed this as standard input via
- # unshar, or by typing "sh <file", e.g.. If this archive is complete, you
- # will see the following message at the end:
- # "End of archive 14 (of 15)."
- # Contents: others/Makefile.tcc src/monst.c1
- # Wrapped by billr@saab on Wed Nov 22 10:50:21 1989
- PATH=/bin:/usr/bin:/usr/ucb ; export PATH
- if test -f 'others/Makefile.tcc' -a "${1}" != "-c" ; then
- echo shar: clobbering existing file \"'others/Makefile.tcc'\"
- fi
- echo shar: Extracting \"'others/Makefile.tcc'\" \(15148 characters\)
- sed "s/^X//" >'others/Makefile.tcc' <<'END_OF_FILE'
- X# SCCS Id: @(#)Makefile.tcc 3.0 89/11/18
- X# PC NetHack 3.0 Makefile for Turbo C 2.0
- X# Perpetrator: Mike Threepoint, 890707
- X
- X###
- X### Directories
- X###
- X# makedefs.c hardcodes the include and auxil directories, don't change them.
- XOBJ = o
- XINCL = ..\include
- XAUX = ..\auxil
- XSRC = ..\src
- XOTHERS = ..\others
- X
- X
- X###
- X### Locals
- X###
- X
- X# the name of the game
- XGAME = nethack
- X
- X# the place of the game
- XGAMEDIR = \games\$(GAME)
- X
- X# the filename of the game
- XGAMEFILE = $(GAMEDIR)\$(GAME).exe
- X
- X
- X###
- X### Compiler
- X###
- XCC = tcc
- X
- X# must use Huge model; Large is limited to 64K total global data.
- XMODEL = h
- X
- X# signed chars, jump optimize, strict ANSI, register optimize, no stack frame
- XCFLAGS = -c -no -m$(MODEL) -I$(INCL) -K- -O -A -Z -k- -w-pia -w-pro $(WIZARD)
- X## Note: Turbo C 2.0's -Z is bugged. If you have weird problems, try -Z-.
- X
- X# wizardly defines
- XWIZARD = -DDEBUG
- X
- X# linkers
- XTLINK = tlink
- XLINK = link
- X## There is a bug in TLINK and huge model:
- X##
- X## TLINK 1.0 treated huge like large, with 64K data limit.
- X## TLINK 1.1 fixed that, but chokes over huge data segments anyway.
- X## TLINK 2.0 links and is smaller than LINK /EXEPACK, but for some
- X## reason with too many objects it produces a file that freaks out
- X## and hangs the system.
- X##
- X## Also note:
- X##
- X## Using /EXEPACK with LINK will greatly reduce the size of the
- X## executable (about 50K), it will also greatly increase the memory
- X## required to load it (about 20K).
- X
- XLIBS = $(LIB)\c$(MODEL)
- X# no need to link in the floating point library
- XC0 = $(LIB)\c0$(MODEL).obj
- X
- XLFLAGS = /noi /seg:1024
- XTLFLAGS = /x/c
- X
- X# assembler
- XASM = tasm
- XAFLAGS = /MX
- X
- X
- X###
- X### Rules
- X###
- X# search order
- X.SUFFIXES: .exe .obj .c .asm .y .l
- X# .c -> .obj
- X.c.obj:
- X $(CC) $(CFLAGS) -c $<
- X# .asm -> .obj
- X.asm.obj:
- X $(ASM) $< $(AFLAGS);
- X# .obj -> .exe (for tlink)
- X.obj.exe:
- X $(TLINK) $(TLFLAGS) $(C0) $<, $@,, $(LIBS);
- X## Note: .y -> .c or .l -> .c rules are missing, because none of the developers
- X## had a yacc or lex for the PC to write rules for.
- X
- X
- X###
- X### Optional features (see pcconf.h)
- X###
- X# uncomment the blank definitions if not used
- X
- X# overlays
- X#OVERLAY = $(OBJ)\trampoli.obj ovlmgr.obj
- X#OVERLAY_H = $(INCL)\trampoli.h
- X#LINK_LIST = $(OVERLAYS)
- XOVERLAY =
- XOVERLAY_H =
- XLINK_LIST = $(HOBJ)
- X
- X# Fish's TERMLIB termcap library (see the rule below)
- X#TERMLIB = $(LIB)\termlib.lib
- XTERMLIB =
- X
- X# high-quality BSD random number generation routines
- X#RANDOM = $(OBJ)\random.obj
- XRANDOM =
- X
- X
- X###
- X### Dependencies
- X###
- X# nothing below this line should have to be changed
- X# other things that must be reconfigured are in config.h and $(TARG)conf.h
- X
- X# target prefix
- XTARG = pc
- X
- X# object files for makedefs.exe
- XMAKEOBJS = $(OBJ)\makedefs.obj $(OBJ)\monst.obj $(OBJ)\objects.obj
- X
- X# object files for lev_comp.exe
- XSPLEVOBJS = $(OBJ)\lev_comp.obj $(OBJ)\lev_lex.obj $(OBJ)\lev_main.obj \
- X $(OBJ)\monst.obj $(OBJ)\objects.obj
- X
- X# object files for termlib.lib
- XTERMOBJS = $(OBJ)\tgetent.obj $(OBJ)\tgetflag.obj $(OBJ)\tgetnum.obj \
- X $(OBJ)\tgetstr.obj $(OBJ)\tgoto.obj $(OBJ)\tputs.obj \
- X $(OBJ)\isdigit.obj $(OBJ)\fgetlr.obj
- XTERMLIST = -+ $(OBJ)\tgetent.obj -+ $(OBJ)\tgetflag.obj -+ $(OBJ)\tgetnum.obj \
- X -+ $(OBJ)\tgetstr.obj -+ $(OBJ)\tgoto.obj -+ $(OBJ)\tputs.obj \
- X -+ $(OBJ)\isdigit.obj -+ $(OBJ)\fgetlr.obj
- X
- X# alloc.c is completely unnecessary for any PC NetHack executable.
- X# panic.c is unnecessary for makedefs.exe and lev_comp.exe.
- X# ioctl.c is unnecessary for nethack.exe.
- X
- XROOT = $(OBJ)\main.obj $(OBJ)\allmain.obj $(OBJ)\termcap.obj \
- X $(OBJ)\cmd.obj $(OBJ)\hack.obj $(OBJ)\msdos.obj \
- X $(OVERLAY)
- X
- X# the overlays -- the Microsoft Overlay Linker is limited to 63
- X
- XOVL01 = $(OBJ)\decl.obj
- XOVL02 = $(OBJ)\topl.obj
- XOVL03 = $(OBJ)\pri.obj $(OBJ)\prisym.obj
- XOVL04 = $(OBJ)\rnd.obj $(RANDOM)
- XOVL05 = $(OBJ)\timeout.obj
- XOVL06 = $(OBJ)\mon.obj $(OBJ)\exper.obj $(OBJ)\attrib.obj
- XOVL07 = $(OBJ)\monst.obj $(OBJ)\mondata.obj
- XOVL08 = $(OBJ)\monmove.obj $(OBJ)\track.obj
- XOVL09 = $(OBJ)\dog.obj $(OBJ)\dogmove.obj
- XOVL10 = $(OBJ)\makemon.obj
- XOVL11 = $(OBJ)\do_name.obj $(OBJ)\getline.obj
- XOVL12 = $(OBJ)\weapon.obj
- XOVL13 = $(OBJ)\wield.obj
- XOVL14 = $(OBJ)\invent.obj
- XOVL15 = $(OBJ)\objects.obj
- XOVL16 = $(OBJ)\mkobj.obj $(OBJ)\o_init.obj
- XOVL17 = $(OBJ)\objnam.obj
- XOVL18 = $(OBJ)\worn.obj
- XOVL19 = $(OBJ)\do_wear.obj
- XOVL20 = $(OBJ)\trap.obj
- XOVL21 = $(OBJ)\dothrow.obj
- XOVL22 = $(OBJ)\dokick.obj
- XOVL23 = $(OBJ)\uhitm.obj
- XOVL24 = $(OBJ)\mhitu.obj
- XOVL25 = $(OBJ)\mcastu.obj
- XOVL26 = $(OBJ)\mhitm.obj
- XOVL27 = $(OBJ)\mthrowu.obj
- XOVL28 = $(OBJ)\steal.obj
- XOVL29 = $(OBJ)\priest.obj
- XOVL30 = $(OBJ)\vault.obj
- XOVL31 = $(OBJ)\shk.obj $(OBJ)\shknam.obj
- XOVL32 = $(OBJ)\wizard.obj
- XOVL33 = $(OBJ)\worm.obj
- XOVL34 = $(OBJ)\were.obj
- XOVL35 = $(OBJ)\demon.obj
- XOVL36 = $(OBJ)\artifact.obj
- XOVL37 = $(OBJ)\music.obj $(OBJ)\dbridge.obj
- XOVL38 = $(OBJ)\sit.obj $(OBJ)\fountain.obj
- XOVL39 = $(OBJ)\sounds.obj
- XOVL40 = $(OBJ)\spell.obj
- XOVL41 = $(OBJ)\read.obj
- XOVL42 = $(OBJ)\potion.obj
- XOVL43 = $(OBJ)\zap.obj
- XOVL44 = $(OBJ)\eat.obj $(OBJ)\rumors.obj
- XOVL45 = $(OBJ)\do.obj
- XOVL46 = $(OBJ)\search.obj
- XOVL47 = $(OBJ)\lock.obj
- XOVL48 = $(OBJ)\apply.obj
- XOVL49 = $(OBJ)\engrave.obj
- XOVL50 = $(OBJ)\write.obj
- XOVL51 = $(OBJ)\pray.obj
- XOVL52 = $(OBJ)\options.obj
- XOVL53 = $(OBJ)\pickup.obj
- XOVL54 = $(OBJ)\polyself.obj
- XOVL55 = $(OBJ)\u_init.obj
- XOVL56 = $(OBJ)\extralev.obj
- XOVL57 = $(OBJ)\mklev.obj $(OBJ)\mkroom.obj
- XOVL58 = $(OBJ)\mkmaze.obj $(OBJ)\sp_lev.obj
- XOVL59 = $(OBJ)\restore.obj $(OBJ)\save.obj $(OBJ)\bones.obj
- XOVL60 = $(OBJ)\rip.obj $(OBJ)\topten.obj $(OBJ)\end.obj
- XOVL61 = $(OBJ)\unix.obj $(OBJ)\tty.obj $(OBJ)\mail.obj
- XOVL62 = $(OBJ)\pager.obj
- XOVL63 = $(OBJ)\version.obj
- X
- X# date.h dependencies
- XVOBJ = $(ROOT) $(OVL01) $(OVL02) $(OVL03) $(OVL04) $(OVL05) $(OVL06) $(OVL07) \
- X $(OVL08) $(OVL09) $(OVL10) $(OVL11) $(OVL12) $(OVL13) $(OVL14) $(OVL15) \
- X $(OVL16) $(OVL17) $(OVL18) $(OVL19) $(OVL20) $(OVL21) $(OVL22) $(OVL23) \
- X $(OVL24) $(OVL25) $(OVL26) $(OVL27) $(OVL28) $(OVL29) $(OVL30) $(OVL31) \
- X $(OVL32) $(OVL33) $(OVL34) $(OVL35) $(OVL36) $(OVL37) $(OVL38) $(OVL39) \
- X $(OVL40) $(OVL41) $(OVL42) $(OVL43) $(OVL44) $(OVL45) $(OVL46) $(OVL47) \
- X $(OVL48) $(OVL49) $(OVL50) $(OVL51) $(OVL52) $(OVL53) $(OVL54) $(OVL55) \
- X $(OVL56) $(OVL57) $(OVL58) $(OVL59) $(OVL60) $(OVL61) $(OVL62)
- X
- X# nethack.exe dependencies, non-overlay link list
- XHOBJ = $(VOBJ) $(OVL63)
- X
- X# overlay link list
- XOVERLAYS = $(ROOT) ($(OVL01)) ($(OVL02)) ($(OVL03)) ($(OVL04)) ($(OVL05)) \
- X ($(OVL06)) ($(OVL07)) ($(OVL08)) ($(OVL09)) ($(OVL10)) ($(OVL11)) \
- X ($(OVL12)) ($(OVL13)) ($(OVL14)) ($(OVL15)) ($(OVL16)) ($(OVL17)) \
- X ($(OVL18)) ($(OVL19)) ($(OVL20)) ($(OVL21)) ($(OVL22)) ($(OVL23)) \
- X ($(OVL24)) ($(OVL25)) ($(OVL26)) ($(OVL27)) ($(OVL28)) ($(OVL29)) \
- X ($(OVL30)) ($(OVL31)) ($(OVL32)) ($(OVL33)) ($(OVL34)) ($(OVL35)) \
- X ($(OVL36)) ($(OVL37)) ($(OVL38)) ($(OVL39)) ($(OVL40)) ($(OVL41)) \
- X ($(OVL42)) ($(OVL43)) ($(OVL44)) ($(OVL45)) ($(OVL46)) ($(OVL47)) \
- X ($(OVL48)) ($(OVL49)) ($(OVL50)) ($(OVL51)) ($(OVL52)) ($(OVL53)) \
- X ($(OVL54)) ($(OVL55)) ($(OVL56)) ($(OVL57)) ($(OVL58)) ($(OVL59)) \
- X ($(OVL60)) ($(OVL61)) ($(OVL62)) ($(OVL63))
- X
- X# header dependencies
- X
- XPCCONF_H = $(INCL)\$(TARG)conf.h $(INCL)\msdos.h $(INCL)\system.h
- XGLOBAL_H = $(INCL)\global.h $(INCL)\coord.h $(PCCONF_H)
- XCONFIG_H = $(INCL)\config.h $(INCL)\tradstdc.h $(GLOBAL_H)
- XTRAP_H = $(INCL)\trap.h
- XPERMONST_H = $(INCL)\permonst.h $(INCL)\monflag.h
- XYOU_H = $(INCL)\you.h $(INCL)\attrib.h $(PERMONST_H) \
- X $(INCL)\mondata.h $(INCL)\monst.h $(INCL)\youprop.h
- XDECL_H = $(INCL)\spell.h $(INCL)\obj.h $(YOU_H) \
- X $(INCL)\onames.h $(INCL)\pm.h
- XHACK_H = $(CONFIG_H) $(DECL_H) $(INCL)\monsym.h \
- X $(INCL)\mkroom.h $(INCL)\objclass.h $(INCL)\gold.h \
- X $(INCL)\trap.h $(INCL)\flag.h $(INCL)\rm.h \
- X $(OVERLAY_H)
- X
- X## extern.h, and decl.h contain only external declarations.
- X##
- X## If anything in them changes, all other files involving the changed routines
- X## should be changed to reflect them. Including them in their respective
- X## dependency lists will make sure everything is correct, but causes frequent
- X## near-total recompiles. By leaving them out, we allow quicker testing of
- X## changes, but we presume the wiz knows to be circumspect.
- X
- X
- X###
- X### Main targets
- X###
- X
- X$(GAME): $(GAMEFILE) $(GAMEDIR)\data $(GAMEDIR)\rumors
- X
- X$(GAMEFILE): $(GAMEDIR) $(OBJ) $(HOBJ) $(TERMLIB) Makefile
- X @echo Linking...
- X if exist $@ del $@
- X $(LINK) $(C0) $(LINK_LIST),$@,,$(LIBS) $(TERMLIB) $(LFLAGS);
- X @echo NetHack is up to date.
- X
- Xall: $(GAME) install
- X @echo Done.
- X
- X$(OBJ):
- X mkdir $(OBJ)
- X
- X$(GAMEDIR):
- X mkdir $(GAMEDIR)
- X mkdir $(GAMEDIR)\bones
- X
- X
- X###
- X### makedefs.exe
- X###
- X
- Xmakedefs.exe: $(MAKEOBJS)
- X @$(TLINK) $(TLFLAGS) $(C0) $(MAKEOBJS),$@,,$(LIBS);
- X
- X$(OBJ)\makedefs.obj: $(INCL)\config.h $(INCL)\permonst.h $(INCL)\objclass.h
- X
- X
- X###
- X### makedefs-generated files
- X###
- X
- X# date.h should be remade any time any of the source is modified
- X$(INCL)\date.h: makedefs.exe $(VOBJ)
- X makedefs -v
- X
- X$(INCL)\trap.h: makedefs.exe
- X makedefs -t
- X
- X$(INCL)\onames.h: makedefs.exe
- X makedefs -o
- X
- X$(INCL)\pm.h: makedefs.exe
- X makedefs -p
- X
- X$(GAMEDIR)\data: makedefs.exe $(AUX)\data.base
- X makedefs -d
- X xcopy $(AUX)\data $(GAMEDIR)
- X del $(AUX)\data
- X
- X$(GAMEDIR)\rumors: makedefs.exe $(AUX)\rumors.tru $(AUX)\rumors.fal
- X makedefs -r
- X xcopy $(AUX)\rumors $(GAMEDIR)
- X del $(AUX)\rumors
- X
- X
- X###
- X### lev_comp.exe
- X###
- X
- Xlev_comp.exe: $(SPLEVOBJS)
- X $(TLINK) $(TLFLAGS) $(C0) $(SPLEVOBJS),$@,,$(LIBS);
- X
- X## Note: UNIX yacc may generate a line reading "#", which Turbo C 2.0, despite
- X## the manual's claims that it should be ignored, treats as an error.
- X## You may have to remove such a line to compile lev_comp.c.
- X$(OBJ)\lev_comp.obj: $(HACK_H) $(INCL)\sp_lev.h
- X $(CC) $(CFLAGS) -A- $*.c
- X$(OBJ)\lev_lex.obj: $(INCL)\lev_comp.h $(HACK_H) $(INCL)\sp_lev.h
- X$(OBJ)\lev_main.obj: $(HACK_H) $(INCL)\sp_lev.h
- X
- X# If you have yacc or lex programs, and make any changes,
- X# add some .y.c and .l.c rules to your Make.ini.
- X#
- X#lev_comp.c: lev_comp.y
- X#lev_lex.c: lev_comp.l
- X
- X
- X###
- X### termlib.lib
- X###
- X
- X#$(TERMLIB): $(TERMOBJS)
- X# tlib $(TERMLIB) /C $(TERMLIST);
- X
- X
- X###
- X### Secondary targets
- X###
- X
- Xinstall: $(GAMEDIR)\NetHack.cnf $(GAMEDIR)\record $(GAMEDIR)\termcap spec_levs
- X xcopy $(AUX)\*. $(GAMEDIR)
- X @echo Auxiliary files installed.
- X
- X$(GAMEDIR)\NetHack.cnf:
- X xcopy $(OTHERS)\NetHack.cnf $(GAMEDIR)
- X$(GAMEDIR)\record:
- X touch $(GAMEDIR)\record
- X$(GAMEDIR)\termcap:
- X xcopy $(OTHERS)\termcap $(GAMEDIR)
- X
- Xspec_levs: $(AUX)\castle.des $(AUX)\endgame.des $(AUX)\tower.des lev_comp.exe
- X lev_comp $(AUX)\castle.des
- X lev_comp $(AUX)\endgame.des
- X lev_comp $(AUX)\tower.des
- X chdir $(AUX)
- X xcopy castle $(GAMEDIR)
- X del castle
- X xcopy endgame $(GAMEDIR)
- X del endgame
- X xcopy tower? $(GAMEDIR)
- X del tower?
- X chdir $(SRC)
- X @echo Special levels compiled.
- X
- Xclean:
- X del $(OBJ)\*.obj
- X rmdir $(OBJ)
- X
- Xspotless: clean
- X del $(INCL)\date.h
- X del $(INCL)\onames.h
- X del $(INCL)\pm.h
- X del makedefs.exe
- X if exist lev_comp.exe del lev_comp.exe
- X
- X
- X###
- X### Other dependencies
- X###
- X
- X# OS-dependent filenames
- X$(OBJ)\main.obj: $(HACK_H) $(TARG)main.c
- X $(CC) $(CFLAGS) -o$@ $(TARG)main.c
- X
- X$(OBJ)\tty.obj: $(HACK_H) $(INCL)\func_tab.h $(TARG)tty.c
- X $(CC) $(CFLAGS) -o$@ $(TARG)tty.c
- X
- X$(OBJ)\unix.obj: $(HACK_H) $(TARG)unix.c
- X $(CC) $(CFLAGS) -o$@ $(TARG)unix.c
- X
- X# GO AHEAD, DELETE THIS LINE
- X
- X$(OBJ)\allmain.obj: $(HACK_H)
- X$(OBJ)\alloc.obj: $(CONFIG_H)
- X$(OBJ)\apply.obj: $(HACK_H) $(INCL)\edog.h
- X$(OBJ)\artifact.obj: $(HACK_H) $(INCL)\artifact.h
- X$(OBJ)\attrib.obj: $(HACK_H)
- X$(OBJ)\bones.obj: $(HACK_H)
- X$(OBJ)\cmd.obj: $(HACK_H) $(INCL)\func_tab.h
- X$(OBJ)\dbridge.obj: $(HACK_H)
- X$(OBJ)\decl.obj: $(HACK_H)
- X$(OBJ)\demon.obj: $(HACK_H)
- X$(OBJ)\do.obj: $(HACK_H)
- X$(OBJ)\do_name.obj: $(HACK_H)
- X$(OBJ)\do_wear.obj: $(HACK_H)
- X$(OBJ)\dog.obj: $(HACK_H) $(INCL)\edog.h
- X$(OBJ)\dogmove.obj: $(HACK_H) $(INCL)\mfndpos.h $(INCL)\edog.h
- X$(OBJ)\dokick.obj: $(HACK_H)
- X$(OBJ)\dothrow.obj: $(HACK_H)
- X$(OBJ)\eat.obj: $(HACK_H)
- X$(OBJ)\end.obj: $(HACK_H) $(INCL)\eshk.h
- X$(OBJ)\engrave.obj: $(HACK_H)
- X$(OBJ)\exper.obj: $(HACK_H)
- X$(OBJ)\extralev.obj: $(HACK_H)
- X$(OBJ)\fountain.obj: $(HACK_H)
- X$(OBJ)\getline.obj: $(HACK_H) $(INCL)\func_tab.h
- X$(OBJ)\hack.obj: $(HACK_H)
- X$(OBJ)\invent.obj: $(HACK_H) $(INCL)\lev.h $(INCL)\wseg.h
- X$(OBJ)\ioctl.obj: $(HACK_H)
- X$(OBJ)\lev_comp.obj: $(HACK_H) $(INCL)\sp_lev.h
- X$(OBJ)\lev_lex.obj: $(HACK_H) $(INCL)\sp_lev.h $(INCL)\lev_comp.h
- X$(OBJ)\lev_main.obj: $(HACK_H) $(INCL)\sp_lev.h
- X$(OBJ)\lock.obj: $(HACK_H)
- X$(OBJ)\makemon.obj: $(HACK_H)
- X$(OBJ)\mail.obj: $(HACK_H)
- X$(OBJ)\mcastu.obj: $(HACK_H)
- X$(OBJ)\mhitm.obj: $(HACK_H) $(INCL)\artifact.h
- X$(OBJ)\mhitu.obj: $(HACK_H) $(INCL)\artifact.h $(INCL)\edog.h
- X$(OBJ)\mklev.obj: $(HACK_H)
- X$(OBJ)\mkmaze.obj: $(HACK_H)
- X$(OBJ)\mkobj.obj: $(HACK_H)
- X$(OBJ)\mkroom.obj: $(HACK_H)
- X$(OBJ)\mon.obj: $(HACK_H) $(INCL)\mfndpos.h $(INCL)\wseg.h
- X$(OBJ)\mondata.obj: $(HACK_H) $(INCL)\eshk.h $(INCL)\epri.h
- X$(OBJ)\monmove.obj: $(HACK_H) $(INCL)\mfndpos.h $(INCL)\artifact.h
- X$(OBJ)\monst.obj: $(CONFIG_H) $(PERMONST_H) $(INCL)\eshk.h \
- X $(INCL)\vault.h $(INCL)\epri.h
- X$(OBJ)\msdos.obj: $(HACK_H) msdos.c
- X $(CC) $(CFLAGS) -A- $*.c
- X# set ANSI only off -- many MS-DOS specific things.
- X$(OBJ)\mthrowu.obj: $(HACK_H)
- X$(OBJ)\music.obj: $(HACK_H)
- X$(OBJ)\o_init.obj: $(HACK_H) $(INCL)\onames.h
- X$(OBJ)\objects.obj: $(CONFIG_H) $(INCL)\obj.h $(INCL)\objclass.h \
- X $(INCL)\prop.h
- X$(OBJ)\objnam.obj: $(HACK_H)
- X$(OBJ)\options.obj: $(HACK_H)
- X$(OBJ)\pager.obj: $(HACK_H)
- X$(OBJ)\panic.obj: $(CONFIG_H)
- X$(OBJ)\pickup.obj: $(HACK_H)
- X$(OBJ)\polyself.obj: $(HACK_H)
- X$(OBJ)\potion.obj: $(HACK_H)
- X$(OBJ)\pray.obj: $(HACK_H)
- X$(OBJ)\pri.obj: $(HACK_H) $(INCL)\epri.h $(INCL)\termcap.h
- X$(OBJ)\priest.obj: $(HACK_H) $(INCL)\mfndpos.h $(INCL)\eshk.h \
- X $(INCL)\epri.h
- X$(OBJ)\prisym.obj: $(HACK_H) $(INCL)\lev.h $(INCL)\wseg.h
- X$(OBJ)\random.obj:
- X$(OBJ)\read.obj: $(HACK_H)
- X$(OBJ)\restore.obj: $(HACK_H) $(INCL)\lev.h $(INCL)\wseg.h
- X$(OBJ)\rip.obj:
- X $(CC) $(CFLAGS) -d- $*.c
- X# must not merge strings, or the tombstone lines will overlap
- X$(OBJ)\rnd.obj: $(HACK_H)
- X$(OBJ)\rumors.obj: $(HACK_H)
- X$(OBJ)\save.obj: $(HACK_H) $(INCL)\lev.h $(INCL)\wseg.h
- X$(OBJ)\search.obj: $(HACK_H) $(INCL)\artifact.h
- X$(OBJ)\shk.obj: $(HACK_H) $(INCL)\eshk.h
- X$(OBJ)\shknam.obj: $(HACK_H) $(INCL)\eshk.h
- X$(OBJ)\sit.obj: $(HACK_H)
- X$(OBJ)\sounds.obj: $(HACK_H) $(INCL)\edog.h $(INCL)\eshk.h
- X$(OBJ)\sp_lev.obj: $(HACK_H) $(INCL)\sp_lev.h
- X$(OBJ)\spell.obj: $(HACK_H)
- X$(OBJ)\steal.obj: $(HACK_H)
- X$(OBJ)\termcap.obj: $(HACK_H) $(INCL)\termcap.h
- X$(OBJ)\timeout.obj: $(HACK_H)
- X$(OBJ)\topl.obj: $(HACK_H)
- X$(OBJ)\topten.obj: $(HACK_H)
- X$(OBJ)\track.obj: $(HACK_H)
- X$(OBJ)\trampoli.obj: $(HACK_H)
- X$(OBJ)\trap.obj: $(HACK_H) $(INCL)\edog.h $(INCL)\trapname.h
- X$(OBJ)\u_init.obj: $(HACK_H)
- X$(OBJ)\uhitm.obj: $(HACK_H) $(INCL)\artifact.h
- X$(OBJ)\vault.obj: $(HACK_H) $(INCL)\vault.h
- X$(OBJ)\version.obj: $(HACK_H) $(INCL)\date.h
- X$(OBJ)\weapon.obj: $(HACK_H)
- X$(OBJ)\were.obj: $(HACK_H)
- X$(OBJ)\wield.obj: $(HACK_H)
- X$(OBJ)\wizard.obj: $(HACK_H)
- X$(OBJ)\worm.obj: $(HACK_H) $(INCL)\wseg.h
- X$(OBJ)\worn.obj: $(HACK_H)
- X$(OBJ)\write.obj: $(HACK_H)
- X$(OBJ)\zap.obj: $(HACK_H)
- END_OF_FILE
- if test 15148 -ne `wc -c <'others/Makefile.tcc'`; then
- echo shar: \"'others/Makefile.tcc'\" unpacked with wrong size!
- fi
- # end of 'others/Makefile.tcc'
- if test -f 'src/monst.c1' -a "${1}" != "-c" ; then
- echo shar: clobbering existing file \"'src/monst.c1'\"
- fi
- echo shar: Extracting \"'src/monst.c1'\" \(39921 characters\)
- sed "s/^X//" >'src/monst.c1' <<'END_OF_FILE'
- X/* SCCS Id: @(#)monst.c 3.0 89/11/09
- X/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
- X/* NetHack may be freely redistributed. See license for details. */
- X
- X/* since this file is also used in auxiliary programs, don't include all the
- X * function declarations for all of nethack
- X */
- X#define EXTERN_H
- X/* #define MAKEDEFS_C 1 /* define for Macs when compiling makedefs */
- X#include "config.h"
- X#include "permonst.h"
- X#include "monsym.h"
- X#include "eshk.h"
- X#include "vault.h"
- X#include "epri.h"
- X
- X#define NO_ATTK { 0, 0, 0, 0 }
- X
- X#ifdef C
- X#undef C
- X#endif
- X#ifdef TEXTCOLOR
- X#include "color.h"
- X#define C(color) color
- X#define HI_DOMESTIC BLUE
- X#define HI_LORD MAGENTA
- X#else
- X#define C(color)
- X#endif
- X
- X#ifndef SPLITMON_2
- Xstruct permonst playermon = { /* used by weapons bonus code */
- X "player", S_HUMAN, 1, 10, 10, 0, 0, G_GENO | G_NOGEN,
- X { { AT_WEAP, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
- X 45, 400, PL_NSIZ, MS_SILENT, MZ_HUMAN, M1_HUMANOID | M1_COLLECT,
- X M2_HUMAN | M2_STRONG | M2_NEEDPICK, C(HI_MON)
- X}, *uasmon = &playermon;
- X#endif /* SPLITMON_2 */
- X
- X/*
- X * Rule #1: monsters of a given class are contiguous in the
- X * mons[] array.
- X *
- X * Rule #2: monsters of a given class are presented in ascending
- X * order of strength.
- X *
- X * Rule #3: monster frequency is included in the geno mask;
- X * the frequency can be from 0 to 7. 0's will also
- X * be skipped during generation.
- X *
- X * Guidelines for color assignment:
- X *
- X * * Use the same color for all `growth stages' of a monster (ex.
- X * little dog/big dog, baby naga/full-grown naga.
- X *
- X * * Use described color wherever possible. If the class has `real'
- X * members with strong color associations, use those.
- X *
- X * * Favor `cool' colors for cold-resistent monsters, `warm' ones for
- X * fire-resistent ones.
- X *
- X * * Try to reserve purple (magenta) for powerful `ruler' monsters (queen
- X * bee, kobold lord, &c.).
- X *
- X * The aim in assigning colors is to be consistent enough so a player can
- X * become `intuitive' about them, deducing some or all of these rules
- X * unconsciously. Use your common sense.
- X */
- X
- X#if defined(MACOS) && !defined(MAKEDEFS_C)
- Xstruct permonst *mons; /* for SMALLDATA - mons data stored in NetHack app */
- X#else
- X#ifndef SPLITMON_2
- Xstruct permonst mons[] = {
- X/* ants */
- X { "giant ant", S_ANT, 2, 18, 3, 0, 0, (G_GENO | G_SGROUP | 3),
- X { { AT_BITE, AD_PHYS, 1, 4 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
- X 1, 10, 0, MS_SILENT, MZ_TINY, M1_ANIMAL | M1_NOHANDS | M1_EGGS,
- X M2_HOSTILE | M2_CARNIVORE, C(BLACK) },
- X { "soldier ant", S_ANT, 3, 18, 3, 0, 0, (G_GENO | G_SGROUP | 2),
- X { { AT_BITE, AD_PHYS, 2, 4 }, { AT_STNG, AD_DRST, 3, 4 },
- X NO_ATTK, NO_ATTK, NO_ATTK }, 2, 20, 0, MS_SILENT, MZ_TINY,
- X M1_ANIMAL | M1_NOHANDS | M1_EGGS | M1_POIS | M1_POIS_RES,
- X M2_HOSTILE | M2_CARNIVORE, C(BLUE) },
- X { "fire ant", S_ANT, 3, 18, 3, 10, 0, (G_GENO | G_SGROUP | 1),
- X { { AT_BITE, AD_FIRE, 1, 4 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
- X 3, 30, 0, MS_SILENT, MZ_TINY, M1_ANIMAL | M1_NOHANDS | M1_EGGS |
- X M1_FIRE_RES, M2_HOSTILE | M2_CARNIVORE, C(RED) },
- X { "giant beetle", S_ANT, 5, 6, 4, 0, 0, (G_GENO | 3),
- X { { AT_BITE, AD_PHYS, 3, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
- X 1, 10, 0, MS_SILENT, MZ_LARGE, M1_ANIMAL | M1_NOHANDS | M1_POIS |
- X M1_POIS_RES, M2_HOSTILE | M2_CARNIVORE, C(BLACK) },
- X { "killer bee", S_ANT, 1, 18, -1, 0, 0, (G_GENO | G_LGROUP | 2),
- X { { AT_STNG, AD_DRST, 1, 3 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
- X 1, 10, 0, MS_BUZZ, MZ_TINY, M1_ANIMAL | M1_FLY | M1_NOHANDS |
- X M1_POIS | M1_POIS_RES, M2_HOSTILE, C(YELLOW) },
- X { "queen bee", S_ANT, 9, 24, -4, 0, 0, (G_GENO | G_NOGEN),
- X { { AT_STNG, AD_DRST, 1, 8 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
- X 1, 10, 0, MS_BUZZ, MZ_TINY, M1_ANIMAL | M1_FLY | M1_NOHANDS |
- X M1_POIS | M1_POIS_RES | M1_PRINCE, M2_HOSTILE, C(HI_LORD) },
- X/* blobs */
- X { "acid blob", S_BLOB, 1, 3, 8, 0, 0, (G_GENO | 2),
- X { { AT_NONE, AD_ACID, 1, 8 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
- X 3, 30, 0, MS_SILENT, MZ_TINY,
- X M1_NOEYES | M1_NOHANDS | M1_POIS | M1_SLEE_RES | M1_STON_RES,
- X M2_WANDER | M2_NOLIMBS | M2_AMORPHOUS, C(GREEN) },
- X { "quivering blob", S_BLOB, 5, 1, 8, 0, 0, (G_GENO | 2),
- X { { AT_TUCH, AD_PHYS, 1, 8 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
- X 20, 200, 0, MS_SILENT, MZ_SMALL, M1_NOEYES | M1_NOHANDS | M1_POIS_RES,
- X M2_WANDER | M2_HOSTILE | M2_NOLIMBS, C(WHITE) },
- X { "gelatinous cube", S_BLOB, 6, 6, 8, 0, 0, (G_GENO | 2),
- X { { AT_TUCH, AD_PLYS, 2, 4 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
- X 30, 300, 0, MS_SILENT, MZ_LARGE, M1_NOEYES | M1_NOHANDS |
- X M1_FIRE_RES | M1_COLD_RES | M1_ELEC_RES | M1_SLEE_RES,
- X M2_WANDER | M2_HOSTILE | M2_NOLIMBS | M2_OMNIVORE, C(CYAN) },
- X/* cockatrice */
- X { "cockatrice", S_COCKATRICE, 5, 6, 6, 30, 0, (G_GENO | 5),
- X { { AT_BITE, AD_PHYS, 1, 3 }, { AT_TUCH, AD_STON, 0, 0 },
- X NO_ATTK, NO_ATTK, NO_ATTK }, 3, 30, 0, MS_HISS, MZ_SMALL,
- X M1_ANIMAL | M1_NOHANDS | M1_EGGS | M1_POIS_RES | M1_STON_RES,
- X M2_HOSTILE, C(YELLOW) },
- X/* dog */
- X { "little dog", S_DOG, 2, 18, 6, 0, 0, (G_GENO | 1),
- X { { AT_BITE, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
- X 15, 150, 0, MS_BARK, MZ_SMALL,
- X M1_ANIMAL | M1_NOHANDS, M2_CARNIVORE, C(HI_DOMESTIC) },
- X { "dog", S_DOG, 4, 16, 5, 0, 0, (G_GENO | 1),
- X { { AT_BITE, AD_PHYS, 1 ,6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
- X 20, 200, 0, MS_BARK, MZ_MEDIUM,
- X M1_ANIMAL | M1_NOHANDS, M2_CARNIVORE, C(HI_DOMESTIC) },
- X { "large dog", S_DOG, 6, 15, 4, 0, 0, (G_GENO | 1),
- X { { AT_BITE, AD_PHYS, 2, 4 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
- X 25, 250, 0, MS_BARK, MZ_MEDIUM,
- X M1_ANIMAL | M1_NOHANDS, M2_STRONG | M2_CARNIVORE, C(HI_DOMESTIC) },
- X { "jackal", S_DOG, 0, 12, 7, 0, 0, (G_GENO | G_SGROUP | 3),
- X { { AT_BITE, AD_PHYS, 1, 2 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
- X 25, 250, 0, MS_BARK, MZ_SMALL,
- X M1_ANIMAL | M1_NOHANDS, M2_HOSTILE | M2_CARNIVORE, C(BROWN) },
- X { "jackalwere", S_DOG, 2, 12, 7, 10, -7, G_NOGEN | G_NOCORPSE,
- X { { AT_BITE, AD_WERE, 1, 4 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
- X 25, 250, 0, MS_BARK, MZ_SMALL,
- X M1_NOPOLY | M1_WERE | M1_NOHANDS | M1_POIS | M1_REGEN,
- X M2_HOSTILE | M2_CARNIVORE, C(BROWN) },
- X { "wolf", S_DOG, 5, 12, 4, 0, 0, (G_GENO | G_SGROUP | 2),
- X { { AT_BITE, AD_PHYS, 2, 4 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
- X 25, 250, 0, MS_BARK, MZ_SMALL,
- X M1_ANIMAL | M1_NOHANDS, M2_HOSTILE | M2_CARNIVORE, C(BROWN) },
- X { "wolfwere", S_DOG, 5, 12, 4, 20, -7, G_NOGEN | G_NOCORPSE,
- X { { AT_BITE, AD_WERE, 2, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
- X 25, 250, 0, MS_BARK, MZ_MEDIUM,
- X M1_NOPOLY | M1_WERE | M1_NOHANDS | M1_POIS | M1_REGEN,
- X M2_HOSTILE | M2_CARNIVORE, C(BROWN) },
- X { "winter wolf", S_DOG, 7, 12, 4, 0, 0, (G_GENO | 1),
- X { { AT_BITE, AD_PHYS, 2, 6 }, { AT_BREA, AD_COLD, 2, 6 },
- X NO_ATTK, NO_ATTK, NO_ATTK, },
- X 30, 300, 0, MS_BARK, MZ_LARGE, M1_ANIMAL | M1_NOHANDS | M1_COLD_RES,
- X M2_HOSTILE | M2_STRONG | M2_CARNIVORE, C(WHITE) },
- X { "warg", S_DOG, 7, 12, 4, 0, -5, (G_GENO | G_SGROUP | 2),
- X { { AT_BITE, AD_PHYS, 2, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
- X 35, 350, 0, MS_BARK, MZ_MEDIUM, M1_ANIMAL | M1_NOHANDS,
- X M2_HOSTILE | M2_CARNIVORE, C(BROWN) },
- X { "hell hound pup", S_DOG, 7, 12, 4, 20, -5,
- X (G_HELL | G_GENO | G_SGROUP | 1),
- X { { AT_BITE, AD_PHYS, 2, 6 }, { AT_BREA, AD_FIRE, 2, 6 },
- X NO_ATTK, NO_ATTK, NO_ATTK },
- X 20, 200, 0, MS_BARK, MZ_SMALL, M1_ANIMAL | M1_NOHANDS | M1_FIRE_RES,
- X M2_HOSTILE | M2_CARNIVORE, C(RED) },
- X { "hell hound", S_DOG, 12, 14, 2, 20, 0, (G_HELL | G_GENO | 1),
- X { { AT_BITE, AD_PHYS, 3, 6 }, { AT_BREA, AD_FIRE, 3, 6 },
- X NO_ATTK, NO_ATTK, NO_ATTK, },
- X 30, 300, 0, MS_BARK, MZ_MEDIUM, M1_ANIMAL | M1_NOHANDS | M1_FIRE_RES,
- X M2_HOSTILE | M2_STRONG | M2_CARNIVORE, C(RED) },
- X#ifdef CHARON
- X { "Cerberus", S_DOG, 12, 10, 2, 20, -7, (G_HELL | G_UNIQ | 1),
- X { { AT_BITE, AD_PHYS, 3, 6 }, { AT_BITE, AD_PHYS, 3, 6 },
- X { AT_BITE, AD_PHYS, 3, 6 }, NO_ATTK, NO_ATTK },
- X 50, 350, 0, MS_BARK, MZ_LARGE,
- X M1_NOPOLY | M1_ANIMAL | M1_NOHANDS | M1_FIRE_RES,
- X M2_HOSTILE | M2_STRONG | M2_CARNIVORE, C(RED) },
- X#endif
- X/* eyes */
- X { "floating eye", S_EYE, 2, 1, 9, 10, 0, (G_GENO | 5),
- X { { AT_NONE, AD_PLYS, 0, 70 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
- X 1, 10, 0, MS_SILENT, MZ_SMALL, M1_FLY | M1_NOHANDS,
- X M2_HOSTILE | M2_NOLIMBS, C(BLUE)},
- X { "freezing sphere", S_EYE, 6, 13, 4, 0, 0, (G_GENO | 2),
- X { { AT_EXPL, AD_COLD, 4, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
- X 1, 10, 0, MS_SILENT, MZ_SMALL, M1_FLY | M1_NOHANDS | M1_COLD_RES,
- X M2_HOSTILE | M2_NOLIMBS, C(WHITE) },
- X/* felines */
- X { "kitten", S_FELINE, 2, 18, 6, 0, 0, (G_GENO | 1),
- X { { AT_BITE, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
- X 15, 150, 0, MS_MEW, MZ_SMALL, M1_ANIMAL | M1_NOHANDS,
- X M2_WANDER | M2_CARNIVORE, C(HI_DOMESTIC) },
- X { "housecat", S_FELINE, 4, 16, 5, 0, 0, (G_GENO | 1),
- X { { AT_BITE, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
- X 20, 200, 0, MS_MEW, MZ_SMALL, M1_ANIMAL | M1_NOHANDS,
- X M2_CARNIVORE, C(HI_DOMESTIC) },
- X { "large cat", S_FELINE, 6, 15, 4, 0, 0, (G_GENO | 1),
- X { { AT_BITE, AD_PHYS, 2, 4 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
- X 25, 250, 0, MS_MEW, MZ_SMALL, M1_ANIMAL | M1_NOHANDS,
- X M2_STRONG | M2_CARNIVORE, C(HI_DOMESTIC) },
- X { "jaguar", S_FELINE, 4, 15, 6, 0, 0, (G_GENO | 2),
- X { { AT_CLAW, AD_PHYS, 1, 4 }, { AT_CLAW, AD_PHYS, 1, 4 },
- X { AT_BITE, AD_PHYS, 1, 8 }, NO_ATTK, NO_ATTK },
- X 30, 300, 0, MS_GROWL, MZ_LARGE, M1_ANIMAL | M1_NOHANDS,
- X M2_HOSTILE | M2_CARNIVORE, C(YELLOW) },
- X { "tiger", S_FELINE, 6, 12, 6, 0, 0, (G_GENO | 2),
- X { { AT_CLAW, AD_PHYS, 2, 4 }, { AT_CLAW, AD_PHYS, 2, 4 },
- X { AT_BITE, AD_PHYS, 1, 10 }, NO_ATTK, NO_ATTK },
- X 30, 300, 0, MS_GROWL, MZ_LARGE, M1_ANIMAL | M1_NOHANDS,
- X M2_HOSTILE | M2_CARNIVORE, C(YELLOW) },
- X/* gremlins */
- X { "gremlin", S_GREMLIN, 5, 12, 2, 25, -9, (G_GENO | 2),
- X { { AT_CLAW, AD_PHYS, 1, 6 }, { AT_CLAW, AD_PHYS, 1, 6 },
- X { AT_BITE, AD_PHYS, 1, 4 }, { AT_CLAW, AD_CURS, 0, 0 }, NO_ATTK },
- X 10, 30, 0, MS_LAUGH, MZ_SMALL,
- X M1_SWIM | M1_HUMANOID | M1_POIS | M1_STALK, 0, C(GREEN) },
- X/* humanoids */
- X#ifdef TOLKIEN
- X { "hobbit", S_HUMANOID, 1, 9, 7, 0, 6, (G_GENO | 2),
- X { { AT_WEAP, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
- X 20, 200, 0, MS_HUMANOID, MZ_SMALL,
- X M1_HUMANOID | M1_COLLECT, 0, C(HI_MON) },
- X#endif
- X { "bugbear", S_HUMANOID, 3, 9, 5, 0, -6, (G_GENO | 1),
- X { { AT_WEAP, AD_PHYS, 2, 4 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
- X 25, 250, 0, MS_GROWL, MZ_LARGE, M1_HUMANOID | M1_COLLECT,
- X M2_STRONG, C(BROWN) },
- X { "dwarf", S_HUMANOID, 2, 6, 4, 10, 4, (G_GENO | 3),
- X { { AT_WEAP, AD_PHYS, 1, 8 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
- X 30, 300, 0, MS_HUMANOID, MZ_HUMAN,
- X M1_HUMANOID | M1_GREEDY | M1_JEWELS | M1_COLLECT,
- X M2_DWARF | M2_TUNNEL | M2_NEEDPICK | M2_STRONG, C(HI_MON)},
- X { "dwarf lord", S_HUMANOID, 4, 6, 4, 10, 5, (G_GENO | 2),
- X { { AT_WEAP, AD_PHYS, 2, 4 }, { AT_WEAP, AD_PHYS, 2, 4 },
- X NO_ATTK, NO_ATTK, NO_ATTK }, 30, 300, 0, MS_HUMANOID, MZ_HUMAN,
- X M1_HUMANOID | M1_LORD | M1_GREEDY | M1_JEWELS | M1_COLLECT,
- X M2_DWARF | M2_TUNNEL | M2_NEEDPICK | M2_STRONG, C(HI_MON) },
- X { "dwarf king", S_HUMANOID, 6, 6, 4, 20, 6, (G_GENO | 1),
- X { { AT_WEAP, AD_PHYS, 2, 6 }, { AT_WEAP, AD_PHYS, 2, 6 },
- X NO_ATTK, NO_ATTK, NO_ATTK }, 30, 300, 0, MS_HUMANOID, MZ_HUMAN,
- X M1_HUMANOID | M1_GREEDY | M1_JEWELS | M1_COLLECT | M1_PRINCE,
- X M2_DWARF | M2_TUNNEL | M2_NEEDPICK | M2_STRONG, C(HI_LORD) },
- X/* imps & other minor demons/devils */
- X { "manes", S_IMP, 1, 3, 7, 0, -7, (G_GENO | G_LGROUP | G_NOCORPSE | 1),
- X { { AT_CLAW, AD_PHYS, 1, 3 }, { AT_CLAW, AD_PHYS, 1, 3 },
- X { AT_BITE, AD_PHYS, 1, 4 }, NO_ATTK, NO_ATTK },
- X 10, 100, 0, MS_JEER, MZ_SMALL, M1_POIS | M1_STALK, 0, C(RED) },
- X { "homunculus", S_IMP, 2, 12, 6, 10, -7, (G_GENO | 2),
- X { { AT_BITE, AD_SLEE, 1, 3 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
- X 20, 200, 0, MS_SILENT, MZ_TINY, M1_FLY | M1_POIS |
- X M1_POIS_RES | M1_SLEE_RES | M1_STALK, 0, C(GREEN) },
- X { "lemure", S_IMP, 3, 3, 7, 0, -7,
- X (G_HELL | G_GENO | G_LGROUP | G_NOCORPSE | 1),
- X { { AT_CLAW, AD_PHYS, 1, 3 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
- X 10, 100, 0, MS_SILENT, MZ_MEDIUM, M1_POIS | M1_SLEE_RES | M1_REGEN |
- X M1_STALK, M2_HOSTILE | M2_WANDER, C(RED) },
- X { "imp", S_IMP, 3, 12, 2, 20, -7, (G_GENO | 1),
- X { { AT_CLAW, AD_PHYS, 1, 4 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
- X 1, 10, 0, MS_JEER, MZ_TINY, M1_REGEN | M1_STALK, M2_WANDER, C(RED) },
- X { "quasit", S_IMP, 3, 15, 2, 20, -7, (G_GENO | 2),
- X { { AT_CLAW, AD_DRDX, 1, 2 }, { AT_CLAW, AD_DRDX, 1, 2 },
- X { AT_BITE, AD_PHYS, 1, 4 }, NO_ATTK, NO_ATTK },
- X 20, 200, 0, MS_SILENT, MZ_SMALL,
- X M1_POIS_RES | M1_REGEN | M1_STALK, 0, C(RED) },
- X { "tengu", S_IMP, 6, 13, 5, 30, 7, (G_GENO | 3),
- X { { AT_BITE, AD_PHYS, 1, 7 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
- X 30, 300, 0, MS_SQAWK, MZ_SMALL,
- X M1_POIS_RES | M1_TPORT | M1_TPORT_CONTROL | M1_STALK, 0, C(CYAN) },
- X/* jellies */
- X { "blue jelly", S_JELLY, 4, 0, 8, 10, 0, (G_GENO | 2),
- X { { AT_NONE, AD_COLD, 0, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
- X 2, 20, 0, MS_SILENT, MZ_MEDIUM,
- X M1_NOEYES | M1_NOHANDS | M1_POIS_RES | M1_COLD_RES,
- X M2_HOSTILE | M2_NOLIMBS | M2_OMNIVORE | M2_AMORPHOUS, C(BLUE) },
- X { "spotted jelly", S_JELLY, 5, 0, 8, 10, 0, (G_GENO | 1),
- X { { AT_NONE, AD_ACID, 0, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
- X 2, 20, 0, MS_SILENT, MZ_MEDIUM,
- X M1_NOEYES | M1_NOHANDS | M1_POIS | M1_STON_RES,
- X M2_HOSTILE | M2_NOLIMBS | M2_OMNIVORE | M2_AMORPHOUS, C(GREEN) },
- X { "ochre jelly", S_JELLY, 6, 3, 8, 20, 0, (G_GENO | 2),
- X { { AT_ENGL, AD_ACID, 3, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
- X 2, 20, 0, MS_SILENT, MZ_MEDIUM,
- X M1_NOEYES | M1_NOHANDS | M1_POIS | M1_STON_RES,
- X M2_HOSTILE | M2_OMNIVORE | M2_NOLIMBS | M2_AMORPHOUS, C(HI_GOLD)},
- X/* kobolds */
- X { "kobold", S_KOBOLD, 0, 6, 7, 0, -2, (G_GENO | 1),
- X { { AT_WEAP, AD_PHYS, 1, 4 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
- X 10, 100, 0, MS_ORC, MZ_SMALL, M1_HUMANOID | M1_POIS | M1_COLLECT,
- X M2_HOSTILE, C(BROWN) },
- X { "large kobold", S_KOBOLD, 1, 6, 6, 0, -3, (G_GENO | 1),
- X { { AT_WEAP, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
- X 15, 150, 0, MS_ORC, MZ_SMALL, M1_HUMANOID | M1_POIS | M1_COLLECT,
- X M2_HOSTILE, C(BROWN) },
- X { "kobold lord", S_KOBOLD, 2, 6, 5, 0, -4, (G_GENO | 1),
- X { { AT_WEAP, AD_PHYS, 2, 4 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
- X 20, 200, 0, MS_ORC, MZ_SMALL, M1_HUMANOID | M1_POIS | M1_COLLECT |
- X M1_LORD, M2_HOSTILE, C(HI_LORD) },
- X { "kobold shaman", S_KOBOLD, 1, 6, 6, 10, -4, (G_GENO | 1),
- X { { AT_MAGC, AD_SPEL, 0, 0 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
- X 15, 150, 0, MS_ORC, MZ_SMALL, M1_HUMANOID | M1_POIS | M1_MAGIC,
- X M2_HOSTILE, C(BROWN) },
- X/* leprechauns */
- X { "leprechaun", S_LEPRECHAUN, 5, 15, 8, 20, 0, (G_GENO | 4),
- X { { AT_CLAW, AD_PHYS, 1, 2 }, { AT_CLAW, AD_SGLD, 0, 0 },
- X NO_ATTK, NO_ATTK, NO_ATTK },
- X 30, 300, 0, MS_LAUGH, MZ_TINY, M1_HUMANOID | M1_TPORT | M1_GREEDY,
- X M2_HOSTILE, C(GREEN) },
- X/* mimics */
- X { "small mimic", S_MIMIC, 7, 3, 7, 0, 0, (G_GENO | 2),
- X { { AT_CLAW, AD_PHYS, 3, 4 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
- X 20, 200, 0, MS_SILENT, MZ_MEDIUM, M1_ANIMAL | M1_NOEYES | M1_NOHANDS,
- X M2_HOSTILE | M2_HIDE | M2_NOLIMBS | M2_CARNIVORE, C(BROWN) },
- X { "large mimic", S_MIMIC, 8, 3, 7, 10, 0, (G_GENO | 1),
- X { { AT_CLAW, AD_STCK, 3, 4 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
- X 40, 400, 0, MS_SILENT, MZ_LARGE, M1_ANIMAL | M1_NOEYES | M1_NOHANDS,
- X M2_HOSTILE | M2_STRONG | M2_HIDE | M2_NOLIMBS | M2_CARNIVORE,
- X C(BROWN) },
- X { "giant mimic", S_MIMIC, 9, 3, 7, 20, 0, (G_GENO | 1),
- X { { AT_CLAW, AD_STCK, 3, 6 }, { AT_CLAW, AD_STCK, 3, 6 },
- X NO_ATTK, NO_ATTK, NO_ATTK },
- X 60, 500, 0, MS_SILENT, MZ_LARGE, M1_ANIMAL | M1_NOEYES | M1_NOHANDS,
- X M2_HOSTILE | M2_STRONG | M2_HIDE | M2_NOLIMBS | M2_CARNIVORE,
- X C(BROWN) },
- X/* nymphs */
- X { "wood nymph", S_NYMPH, 3, 12, 9, 20, 0, (G_GENO | 2),
- X { { AT_CLAW, AD_SITM, 0, 0 }, { AT_CLAW, AD_SEDU, 0, 0 },
- X NO_ATTK, NO_ATTK, NO_ATTK }, 30, 300, 0, MS_SEDUCE, MZ_HUMAN,
- X M1_HUMANOID | M1_TPORT | M1_COLLECT | M1_FEM, M2_HOSTILE, C(GREEN) },
- X { "water nymph", S_NYMPH, 3, 12, 9, 20, 0, (G_GENO | 2),
- X { { AT_CLAW, AD_SITM, 0, 0 }, { AT_CLAW, AD_SEDU, 0, 0 },
- X NO_ATTK, NO_ATTK, NO_ATTK }, 30, 300, 0, MS_SEDUCE, MZ_HUMAN,
- X M1_HUMANOID | M1_TPORT | M1_COLLECT | M1_FEM | M1_SWIM,
- X M2_HOSTILE, C(BLUE) },
- X { "mountain nymph", S_NYMPH, 3, 12, 9, 20, 0, (G_GENO | 2),
- X { { AT_CLAW, AD_SITM, 0, 0 }, { AT_CLAW, AD_SEDU, 0, 0 },
- X NO_ATTK, NO_ATTK, NO_ATTK }, 30, 300, 0, MS_SEDUCE, MZ_HUMAN,
- X M1_HUMANOID | M1_TPORT | M1_COLLECT | M1_FEM, M2_HOSTILE, C(BROWN) },
- X/* orcs */
- X { "goblin", S_ORC, 0, 6, 6, 0, -3, (G_GENO | 2),
- X { { AT_WEAP, AD_PHYS, 1, 4 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
- X 10, 100, 0, MS_ORC, MZ_SMALL,
- X M1_HUMANOID | M1_COLLECT, M2_ORC, C(YELLOW) },
- X { "hobgoblin", S_ORC, 1, 9, 6, 0, -4, (G_GENO | 2),
- X { { AT_WEAP, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
- X 20, 200, 0, MS_ORC, MZ_HUMAN,
- X M1_HUMANOID | M1_COLLECT, M2_ORC | M2_STRONG, C(RED) },
- X /* "orc" for zombie corpses only; they don't get created at random */
- X { "orc", S_ORC, 1, 9, 6, 0, -3, (G_GENO | G_NOGEN | G_LGROUP),
- X { { AT_WEAP, AD_PHYS, 1, 8 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
- X 15, 150, 0, MS_ORC, MZ_HUMAN,
- X M1_HUMANOID | M1_GREEDY | M1_JEWELS | M1_COLLECT,
- X M2_ORC | M2_HOSTILE | M2_STRONG, C(BROWN) },
- X { "hill orc", S_ORC, 2, 9, 6, 0, -4, (G_GENO | G_LGROUP | 2),
- X { { AT_WEAP, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
- X 20, 200, 0, MS_ORC, MZ_HUMAN,
- X M1_HUMANOID | M1_GREEDY | M1_JEWELS | M1_COLLECT,
- X M2_ORC | M2_HOSTILE | M2_STRONG, C(BROWN) },
- X#ifdef TOLKIEN
- X { "Mordor orc", S_ORC, 3, 5, 6, 0, -5, (G_GENO | G_LGROUP | 1),
- X { { AT_WEAP, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
- X 20, 200, 0, MS_ORC, MZ_HUMAN,
- X M1_HUMANOID | M1_GREEDY | M1_JEWELS | M1_COLLECT,
- X M2_ORC | M2_HOSTILE | M2_STRONG, C(BROWN) },
- X { "Uruk-hai", S_ORC, 3, 7, 5, 0, -4, (G_GENO | G_LGROUP | 1),
- X { { AT_WEAP, AD_PHYS, 1, 8 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
- X 30, 300, 0, MS_ORC, MZ_HUMAN,
- X M1_HUMANOID | M1_GREEDY | M1_JEWELS | M1_COLLECT,
- X M2_ORC | M2_HOSTILE | M2_STRONG, C(BROWN) },
- X#endif
- X { "orc shaman", S_ORC, 3, 9, 5, 10, -5, (G_GENO | 1),
- X { { AT_MAGC, AD_SPEL, 0, 0 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
- X 30, 300, 0, MS_ORC, MZ_HUMAN,
- X M1_HUMANOID | M1_GREEDY | M1_JEWELS | M1_MAGIC,
- X M2_ORC | M2_HOSTILE | M2_STRONG, C(BROWN) },
- X { "orc-captain", S_ORC, 5, 5, 4, 0, -5, (G_GENO | 1),
- X { { AT_WEAP, AD_PHYS, 2, 4 }, { AT_WEAP, AD_PHYS, 2, 4 },
- X NO_ATTK, NO_ATTK, NO_ATTK },
- X 35, 350, 0, MS_ORC, MZ_HUMAN,
- X M1_HUMANOID | M1_GREEDY | M1_JEWELS | M1_COLLECT,
- X M2_ORC | M2_HOSTILE | M2_STRONG, C(BROWN) },
- X/* piercers */
- X { "rock piercer", S_PIERCER, 3, 1, 3, 0, 0, (G_GENO | 2),
- X { { AT_BITE, AD_PHYS, 2, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
- X 20, 200, 0, MS_SILENT, MZ_SMALL, M1_ANIMAL | M1_NOEYES | M1_NOHANDS,
- X M2_HOSTILE | M2_HIDE | M2_NOLIMBS | M2_CARNIVORE, C(GRAY) },
- X { "iron piercer", S_PIERCER, 5, 1, 0, 0, 0, (G_GENO | 1),
- X { { AT_BITE, AD_PHYS, 3, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
- X 40, 300, 0, MS_SILENT, MZ_MEDIUM, M1_ANIMAL | M1_NOEYES | M1_NOHANDS,
- X M2_HOSTILE | M2_HIDE | M2_NOLIMBS | M2_CARNIVORE, C(GRAY) },
- X/* quadrupeds (generic) */
- X { "rothe", S_QUADRUPED, 2, 9, 7, 0, 0, (G_GENO | G_SGROUP | 4),
- X { { AT_CLAW, AD_PHYS, 1, 3 }, { AT_BITE, AD_PHYS, 1, 3 },
- X { AT_BITE, AD_PHYS, 1, 8 }, NO_ATTK, NO_ATTK },
- X 10, 100, 0, MS_SILENT, MZ_LARGE, M1_ANIMAL | M1_NOHANDS,
- X M2_HOSTILE | M2_CARNIVORE, C(WHITE) },
- X { "osquip", S_QUADRUPED, 3, 12, 7, 0, 0, (G_GENO | G_SGROUP | 3),
- X { { AT_BITE, AD_PHYS, 2, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
- X 20, 200, 0, MS_SQEEK, MZ_SMALL, M1_ANIMAL | M1_NOHANDS,
- X M2_HOSTILE | M2_CARNIVORE, C(BROWN) },
- X#ifdef TOLKIEN
- X { "mumakil", S_QUADRUPED, 5, 9, 0, 0, -2, (G_GENO | 1),
- X { { AT_BUTT, AD_PHYS, 4, 12 }, { AT_BITE, AD_PHYS, 2, 6 },
- X NO_ATTK, NO_ATTK, NO_ATTK },
- X 70, 500, 0, MS_SILENT, MZ_LARGE, M1_ANIMAL | M1_NOHANDS,
- X M2_HOSTILE | M2_STRONG | M2_CARNIVORE | M2_THICK_HIDE, C(GRAY) },
- X#endif
- X { "leocrotta", S_QUADRUPED, 6, 18, 4, 10, 0, (G_GENO | 2),
- X { { AT_CLAW, AD_PHYS, 2, 6 }, { AT_BITE, AD_PHYS, 2, 6 },
- X { AT_CLAW, AD_PHYS, 2, 6 }, NO_ATTK, NO_ATTK },
- X 50, 500, 0, MS_IMITATE, MZ_LARGE, M1_ANIMAL | M1_NOHANDS,
- X M2_HOSTILE | M2_STRONG | M2_CARNIVORE, C(RED) },
- X { "wumpus", S_QUADRUPED, 8, 3, 2, 10, 0, (G_GENO | 1),
- X { { AT_BITE, AD_PHYS, 3, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
- X 50, 500, 0, MS_SILENT, MZ_LARGE, M1_ANIMAL | M1_NOHANDS,
- X M2_HOSTILE | M2_STRONG | M2_CARNIVORE, C(HI_MON) },
- X { "titanothere", S_QUADRUPED, 12, 12, 6, 0, 0, (G_GENO | 2),
- X { { AT_CLAW, AD_PHYS, 2, 8 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
- X 65, 650, 0, MS_SILENT, MZ_LARGE, M1_ANIMAL | M1_NOHANDS,
- X M2_HOSTILE | M2_STRONG | M2_CARNIVORE | M2_THICK_HIDE, C(GRAY) },
- X { "baluchitherium", S_QUADRUPED, 14, 12, 5, 0, 0, (G_GENO | 2),
- X { { AT_CLAW, AD_PHYS, 5, 4 }, { AT_CLAW, AD_PHYS, 5, 4 },
- X NO_ATTK, NO_ATTK, NO_ATTK },
- X 80, 800, 0, MS_SILENT, MZ_LARGE, M1_ANIMAL | M1_NOHANDS,
- X M2_HOSTILE | M2_STRONG | M2_HERBIVORE | M2_THICK_HIDE, C(GRAY) },
- X/* rodents */
- X { "sewer rat", S_RODENT, 0, 12, 7, 0, 0, (G_GENO | G_SGROUP | 1),
- X { { AT_BITE, AD_PHYS, 1, 3 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
- X 2, 20, 0, MS_SQEEK, MZ_TINY, M1_ANIMAL | M1_NOHANDS,
- X M2_HOSTILE | M2_CARNIVORE, C(BROWN) },
- X { "giant rat", S_RODENT, 1, 10, 7, 0, 0, (G_GENO | G_SGROUP | 2),
- X { { AT_BITE, AD_PHYS, 1, 3 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
- X 3, 30, 0, MS_SQEEK, MZ_TINY, M1_ANIMAL | M1_NOHANDS,
- X M2_HOSTILE | M2_CARNIVORE, C(BROWN) },
- X { "rabid rat", S_RODENT, 2, 12, 6, 0, 0, (G_GENO | 1),
- X { { AT_BITE, AD_DRCO, 2, 4 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
- X 3, 10, 0, MS_SQEEK, MZ_TINY, M1_ANIMAL | M1_NOHANDS | M1_POIS,
- X M2_HOSTILE | M2_CARNIVORE, C(BROWN) },
- X { "ratwere", S_RODENT, 2, 12, 6, 10, -7, G_NOGEN | G_NOCORPSE,
- X { { AT_BITE, AD_WERE, 1, 4 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
- X 3, 30, 0, MS_SQEEK, MZ_TINY, M1_WERE | M1_NOHANDS | M1_NOPOLY |
- X M1_POIS | M1_REGEN, M2_HOSTILE | M2_CARNIVORE, C(BROWN) },
- X { "rock mole", S_RODENT, 3, 3, 0, 20, 0, (G_GENO | 2),
- X { { AT_BITE, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
- X 3, 30, 0, MS_SILENT, MZ_SMALL, M1_ANIMAL | M1_NOHANDS |
- X M1_GREEDY | M1_JEWELS | M1_COLLECT, M2_HOSTILE | M2_TUNNEL, C(BROWN)},
- X/* spiders and scorpions */
- X { "cave spider", S_SPIDER, 1, 12, 3, 0, 0, (G_GENO | G_SGROUP | 2),
- X { { AT_BITE, AD_PHYS, 1, 2 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
- X 5, 50, 0, MS_SILENT, MZ_TINY,
- X M1_ANIMAL | M1_NOHANDS | M1_EGGS | M1_POIS_RES,
- X M2_HOSTILE | M2_CONCEAL | M2_CARNIVORE, C(WHITE) },
- X { "scorpion", S_SPIDER, 5, 15, 3, 0, 0, (G_GENO | 2),
- X { { AT_CLAW, AD_PHYS, 1, 2 }, { AT_CLAW, AD_PHYS, 1, 2 },
- X { AT_STNG, AD_DRST, 1, 4 }, NO_ATTK, NO_ATTK },
- X 10, 100, 0, MS_SILENT, MZ_SMALL,
- X M1_ANIMAL | M1_NOHANDS | M1_EGGS | M1_POIS,
- X M2_HOSTILE | M2_CONCEAL | M2_CARNIVORE, C(RED) },
- X { "giant spider", S_SPIDER, 5, 15, 4, 0, 0, (G_GENO | 1),
- X { { AT_BITE, AD_DRST, 2, 4 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
- X 10, 100, 0, MS_SILENT, MZ_LARGE,
- X M1_ANIMAL | M1_NOHANDS | M1_EGGS | M1_POIS | M1_POIS_RES,
- X M2_HOSTILE | M2_STRONG | M2_CARNIVORE, C(MAGENTA) },
- X/* trappers, lurkers, &c. */
- X { "lurker above", S_TRAPPER, 10, 3, 3, 0, 0, (G_GENO | 2),
- X { { AT_ENGL, AD_DGST, 1, 8 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
- X 40, 350, 0, MS_SILENT, MZ_HUGE,
- X M1_ANIMAL | M1_NOEYES | M1_NOHANDS | M1_STALK | M1_FLY,
- X M2_HOSTILE | M2_STRONG | M2_NOLIMBS | M2_CARNIVORE, C(GRAY) },
- X { "trapper", S_TRAPPER, 12, 3, 3, 0, 0, (G_GENO | 2),
- X { { AT_ENGL, AD_DGST, 1, 10 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
- X 40, 350, 0, MS_SILENT, MZ_HUGE,
- X M1_ANIMAL | M1_NOEYES | M1_NOHANDS | M1_STALK,
- X M2_HOSTILE | M2_STRONG | M2_NOLIMBS | M2_CARNIVORE, C(GRAY) },
- X/* unicorns */
- X { "white unicorn", S_UNICORN, 4, 24, 2, 70, 7, (G_GENO | 2),
- X { { AT_BUTT, AD_PHYS, 1, 12 }, { AT_KICK, AD_PHYS, 1, 6 },
- X NO_ATTK, NO_ATTK, NO_ATTK },
- X 30, 300, 0, MS_NEIGH, MZ_LARGE, M1_NOHANDS | M1_POIS_RES | M1_JEWELS,
- X M2_WANDER | M2_STRONG | M2_HERBIVORE, C(WHITE) },
- X { "gray unicorn", S_UNICORN, 4, 24, 2, 70, 0, (G_GENO | 1),
- X { { AT_BUTT, AD_PHYS, 1, 12 }, { AT_KICK, AD_PHYS, 1, 6 },
- X NO_ATTK, NO_ATTK, NO_ATTK },
- X 30, 300, 0, MS_NEIGH, MZ_LARGE, M1_NOHANDS | M1_POIS_RES | M1_JEWELS,
- X M2_WANDER | M2_STRONG | M2_HERBIVORE, C(GRAY) },
- X { "black unicorn", S_UNICORN, 4, 24, 2, 70, -7, (G_GENO | 1),
- X { { AT_BUTT, AD_PHYS, 1, 12 }, { AT_KICK, AD_PHYS, 1, 6 },
- X NO_ATTK, NO_ATTK, NO_ATTK },
- X 30, 300, 0, MS_NEIGH, MZ_LARGE, M1_NOHANDS | M1_POIS_RES | M1_JEWELS,
- X M2_WANDER | M2_STRONG | M2_HERBIVORE, C(BLACK) },
- X/* vortices */
- X { "fog cloud", S_VORTEX, 3, 1, 0, 0, 0, (G_GENO | G_NOCORPSE | 2),
- X { { AT_ENGL, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
- X 10, 0, 0, MS_SILENT, MZ_HUGE,
- X M1_FLY | M1_NOEYES | M1_NOHANDS | M1_POIS_RES,
- X M2_HOSTILE | M2_NOLIMBS, C(GRAY) },
- X { "dust vortex", S_VORTEX, 4, 20, 2, 30, 0, (G_GENO | G_NOCORPSE | 2),
- X { { AT_ENGL, AD_BLND, 2, 8 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
- X 20, 0, 0, MS_SILENT, MZ_HUGE,
- X M1_FLY | M1_NOEYES | M1_NOHANDS | M1_POIS_RES,
- X M2_HOSTILE | M2_NOLIMBS, C(BROWN) },
- X { "energy vortex", S_VORTEX, 6, 20, 2, 30, 0, (G_GENO | G_NOCORPSE | 1),
- X { { AT_ENGL, AD_ELEC, 1, 6 }, { AT_ENGL, AD_DREN, 0, 0 },
- X NO_ATTK, NO_ATTK, NO_ATTK }, 20, 0, 0, MS_SILENT, MZ_HUGE,
- X M1_FLY | M1_NOEYES | M1_NOHANDS | M1_POIS_RES | M1_ELEC_RES,
- X M2_HOSTILE | M2_NOLIMBS, C(BRIGHT|BLUE) },
- X { "ice vortex", S_VORTEX, 5, 20, 2, 30, 0, (G_GENO | G_NOCORPSE | 1),
- X { { AT_ENGL, AD_COLD, 1, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
- X 30, 0, 0, MS_SILENT, MZ_HUGE,
- X M1_FLY | M1_NOEYES | M1_NOHANDS | M1_POIS_RES | M1_COLD_RES,
- X M2_HOSTILE | M2_NOLIMBS, C(CYAN) },
- X { "steam vortex", S_VORTEX, 7, 22, 2, 30, 0,
- X (G_HELL | G_GENO | G_NOCORPSE | 2),
- X { { AT_ENGL, AD_FIRE, 1, 8 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
- X 30, 0, 0, MS_SILENT, MZ_HUGE,
- X M1_FLY | M1_NOEYES | M1_NOHANDS | M1_POIS_RES | M1_FIRE_RES,
- X M2_HOSTILE | M2_NOLIMBS, C(BLUE) },
- X { "fire vortex", S_VORTEX, 8, 22, 2, 30, 0,
- X (G_HELL | G_GENO | G_NOCORPSE | 1),
- X { { AT_ENGL, AD_FIRE, 1, 10 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
- X 30, 0, 0, MS_SILENT, MZ_HUGE,
- X M1_FLY | M1_NOEYES | M1_NOHANDS | M1_POIS_RES | M1_FIRE_RES,
- X M2_HOSTILE | M2_NOLIMBS, C(YELLOW) },
- X/* worms */
- X#ifdef WORM
- X { "baby long worm", S_WORM, 8, 3, 5, 0, 0, G_GENO,
- X { { AT_BITE, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
- X 25, 250, 0, MS_SILENT, MZ_LARGE, M1_ANIMAL | M1_NOHANDS,
- X M2_HOSTILE | M2_NOLIMBS | M2_CARNIVORE, C(BROWN) },
- X#endif
- X { "baby purple worm", S_WORM, 8, 3, 5, 0, 0, G_GENO,
- X { { AT_BITE, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
- X 25, 250, 0, MS_SILENT, MZ_LARGE, M1_ANIMAL | M1_NOHANDS,
- X M2_HOSTILE | M2_NOLIMBS | M2_CARNIVORE, C(MAGENTA) },
- X#ifdef WORM
- X { "long worm", S_WORM, 8, 3, 5, 10, 0, (G_GENO | 2),
- X { { AT_BITE, AD_PHYS, 1, 4 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
- X 50, 500, 0, MS_SILENT, MZ_GIGANTIC,
- X M1_ANIMAL | M1_NOHANDS | M1_NOPOLY | M1_EGGS,
- X M2_HOSTILE | M2_STRONG | M2_NASTY | M2_NOLIMBS | M2_CARNIVORE,
- X C(BROWN) },
- X#endif
- X { "purple worm", S_WORM, 15, 9, 6, 20, 0, (G_GENO | 2),
- X { { AT_BITE, AD_PHYS, 2, 8 }, { AT_ENGL, AD_DGST, 1, 10 },
- X NO_ATTK, NO_ATTK, NO_ATTK }, 70, 700, 0, MS_SILENT, MZ_GIGANTIC,
- X M1_ANIMAL | M1_NOHANDS | M1_EGGS,
- X M2_HOSTILE | M2_STRONG | M2_NASTY | M2_NOLIMBS | M2_CARNIVORE,
- X C(MAGENTA)},
- X/* xan, &c. */
- X { "grid bug", S_XAN, 0, 12, 9, 0, 0,
- X (G_GENO | G_SGROUP | G_NOCORPSE | 3),
- X { { AT_BITE, AD_ELEC, 1, 1}, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
- X 5, 50, 0, MS_BUZZ, MZ_TINY, M1_ANIMAL | M1_ELEC_RES, M2_HOSTILE,
- X C(MAGENTA)},
- X { "xan", S_XAN, 7, 18, -4, 0, 0, (G_GENO | 3),
- X { { AT_STNG, AD_LEGS, 1, 4 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
- X 30, 300, 0, MS_BUZZ, MZ_TINY, M1_FLY | M1_ANIMAL | M1_NOHANDS |
- X M1_POIS | M1_POIS_RES, M2_HOSTILE, C(RED) },
- X/* yellow light */
- X { "yellow light", S_YLIGHT, 3, 15, 0, 0, 0, (G_GENO | 4),
- X { { AT_EXPL, AD_BLND, 10, 20 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
- X 1, 10, 0, MS_SILENT, MZ_SMALL, M1_FLY | M1_NOHANDS,
- X M2_HOSTILE | M2_NOLIMBS, C(BRIGHT|YELLOW)},
- X/* zruty */
- X { "zruty", S_ZRUTY, 9, 8, 3, 0, 0, (G_GENO | 2),
- X { { AT_CLAW, AD_PHYS, 3, 4 }, { AT_CLAW, AD_PHYS, 3, 4 },
- X { AT_BITE, AD_PHYS, 3, 6 }, NO_ATTK, NO_ATTK },
- X 60, 600, 0, MS_SILENT, MZ_LARGE, M1_ANIMAL | M1_HUMANOID,
- X M2_HOSTILE | M2_STRONG | M2_CARNIVORE, C(BROWN) },
- X/* Apes */
- X { "ape", S_APE, 4, 12, 6, 0, 0, (G_GENO | G_SGROUP | 2),
- X { { AT_CLAW, AD_PHYS, 1, 3 }, { AT_CLAW, AD_PHYS, 1, 3 },
- X { AT_BITE, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK },
- X 50, 500, 0, MS_GROWL, MZ_LARGE, M1_ANIMAL | M1_HUMANOID,
- X M2_STRONG | M2_CARNIVORE, C(BROWN) },
- X { "carnivorous ape", S_APE, 5, 12, 6, 0, 0, (G_GENO | 1),
- X { { AT_CLAW, AD_PHYS, 1, 4 }, { AT_CLAW, AD_PHYS, 1, 4 },
- X { AT_HUGS, AD_PHYS, 1, 8 }, NO_ATTK, NO_ATTK },
- X 55, 550, 0, MS_GROWL, MZ_LARGE, M1_ANIMAL | M1_HUMANOID,
- X M2_HOSTILE | M2_STRONG | M2_CARNIVORE, C(BROWN) },
- X/* Bats */
- X { "bat", S_BAT, 0, 22, 8, 0, 0, (G_GENO | G_SGROUP | 1),
- X { { AT_BITE, AD_PHYS, 1, 4 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
- X 2, 20, 0, MS_SQEEK, MZ_TINY, M1_FLY | M1_ANIMAL | M1_NOHANDS,
- X M2_WANDER | M2_CARNIVORE, C(BLACK) },
- X { "giant bat", S_BAT, 2, 22, 7, 0, 0, (G_GENO | 2),
- X { { AT_BITE, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
- X 3, 30, 0, MS_SQEEK, MZ_MEDIUM, M1_FLY | M1_ANIMAL | M1_NOHANDS,
- X M2_WANDER | M2_HOSTILE | M2_CARNIVORE, C(BLACK) },
- X { "vampire bat", S_BAT, 5, 20, 6, 0, 0, (G_GENO | 2),
- X { { AT_BITE, AD_PHYS, 1, 6 }, { AT_BITE, AD_DRST, 0, 0 },
- X NO_ATTK, NO_ATTK, NO_ATTK },
- X 3, 20, 0, MS_SQEEK, MZ_TINY, M1_FLY | M1_ANIMAL | M1_UNDEAD |
- X M1_NOHANDS | M1_POIS | M1_REGEN, M2_HOSTILE, C(BLACK) },
- X/* Centaurs */
- X { "plains centaur", S_CENTAUR, 4, 18, 4, 0, 0, (G_GENO | 1),
- X { { AT_WEAP, AD_PHYS, 1, 6 }, { AT_KICK, AD_PHYS, 1, 6 },
- X NO_ATTK, NO_ATTK, NO_ATTK},
- X 50, 500, 0, MS_SILENT, MZ_LARGE, M1_COLLECT | M1_GREEDY, M2_STRONG,
- X C(BROWN) },
- X { "forest centaur", S_CENTAUR, 5, 18, 3, 10, -1, (G_GENO | 1),
- X { { AT_WEAP, AD_PHYS, 1, 8 }, { AT_KICK, AD_PHYS, 1, 6 },
- X NO_ATTK, NO_ATTK, NO_ATTK},
- X 55, 600, 0, MS_SILENT, MZ_LARGE, M1_COLLECT | M1_GREEDY, M2_STRONG,
- X C(GREEN) },
- X { "mountain centaur", S_CENTAUR, 6, 20, 2, 10, -3, (G_GENO | 1),
- X { { AT_WEAP, AD_PHYS, 1, 10 }, { AT_KICK, AD_PHYS, 1, 6 },
- X { AT_KICK, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK },
- X 55, 500, 0, MS_SILENT, MZ_LARGE, M1_COLLECT | M1_GREEDY, M2_STRONG,
- X C(BROWN)},
- X/* Dragons */
- X { "baby gray dragon", S_DRAGON, 12, 9, 2, 10, 0, G_GENO,
- X { { AT_BITE, AD_PHYS, 2, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
- X 50, 500, 0, MS_ROAR, MZ_HUGE,
- X M1_FLY | M1_NOHANDS | M1_GREEDY | M1_JEWELS,
- X M2_HOSTILE | M2_STRONG | M2_CARNIVORE | M2_THICK_HIDE, C(GRAY) },
- X { "baby red dragon", S_DRAGON, 12, 9, 2, 10, 0, G_GENO,
- X { { AT_BITE, AD_PHYS, 2, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
- X 50, 500, 0, MS_ROAR, MZ_HUGE,
- X M1_FLY | M1_NOHANDS | M1_GREEDY | M1_JEWELS | M1_FIRE_RES,
- X M2_HOSTILE | M2_STRONG | M2_CARNIVORE | M2_THICK_HIDE, C(RED) },
- X { "baby white dragon", S_DRAGON, 12, 9, 2, 10, 0, G_GENO,
- X { { AT_BITE, AD_PHYS, 2, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
- X 50, 500, 0, MS_ROAR, MZ_HUGE,
- X M1_FLY | M1_NOHANDS | M1_GREEDY | M1_JEWELS | M1_COLD_RES,
- X M2_HOSTILE | M2_STRONG | M2_CARNIVORE | M2_THICK_HIDE, C(WHITE) },
- X { "baby blue dragon", S_DRAGON, 12, 9, 2, 10, 0, G_GENO,
- X { { AT_BITE, AD_PHYS, 2, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
- X 50, 500, 0, MS_ROAR, MZ_HUGE,
- X M1_FLY | M1_NOHANDS | M1_GREEDY | M1_JEWELS | M1_ELEC_RES,
- X M2_HOSTILE | M2_STRONG | M2_CARNIVORE | M2_THICK_HIDE, C(BLUE) },
- X { "baby green dragon", S_DRAGON, 12, 9, 2, 10, 0, G_GENO,
- X { { AT_BITE, AD_PHYS, 2, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
- X 50, 500, 0, MS_ROAR, MZ_HUGE,
- X M1_FLY | M1_NOHANDS | M1_GREEDY | M1_JEWELS | M1_POIS |
- X M1_POIS_RES, M2_HOSTILE | M2_STRONG | M2_CARNIVORE | M2_THICK_HIDE,
- X C(GREEN)},
- X { "baby orange dragon", S_DRAGON, 12, 9, 2, 10, 0, G_GENO,
- X { { AT_BITE, AD_PHYS, 2, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
- X 50, 500, 0, MS_ROAR, MZ_HUGE,
- X M1_FLY | M1_NOHANDS | M1_GREEDY | M1_JEWELS | M1_SLEE_RES,
- X M2_HOSTILE | M2_STRONG | M2_CARNIVORE | M2_THICK_HIDE,
- X C(ORANGE_COLORED) },
- X { "baby black dragon", S_DRAGON, 12, 9, 2, 10, 0, G_GENO,
- X { { AT_BITE, AD_PHYS, 2, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
- X 50, 500, 0, MS_ROAR, MZ_HUGE,
- X M1_FLY | M1_NOHANDS | M1_GREEDY | M1_JEWELS,
- X M2_HOSTILE | M2_STRONG | M2_CARNIVORE | M2_THICK_HIDE, C(BLACK) },
- X { "baby yellow dragon", S_DRAGON, 12, 9, 2, 10, 0, G_GENO,
- X { { AT_BITE, AD_PHYS, 2, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
- X 50, 500, 0, MS_ROAR, MZ_HUGE,
- X M1_FLY | M1_NOHANDS | M1_GREEDY | M1_JEWELS,
- X M2_HOSTILE | M2_STRONG | M2_CARNIVORE | M2_THICK_HIDE, C(YELLOW) },
- X { "gray dragon", S_DRAGON, 10, 9, -1, 20, 4, (G_GENO | 1),
- X { { AT_BREA, AD_MAGM, 4, 6 }, { AT_BITE, AD_PHYS, 3, 8 },
- X { AT_CLAW, AD_PHYS, 1, 4 }, { AT_CLAW, AD_PHYS, 1, 4 }, NO_ATTK },
- X 150, 1500, 0, MS_ROAR, MZ_GIGANTIC, M1_FLY | M1_SEE_INVIS |
- X M1_NOHANDS | M1_EGGS | M1_GREEDY | M1_JEWELS | M1_MAGIC,
- X M2_HOSTILE | M2_STRONG | M2_NASTY | M2_CARNIVORE | M2_THICK_HIDE,
- X C(GRAY)},
- X { "red dragon", S_DRAGON, 10, 9, -1, 20, -4, (G_GENO | 1),
- X { { AT_BREA, AD_FIRE, 6, 6 }, { AT_BITE, AD_PHYS, 3, 8 },
- X { AT_CLAW, AD_PHYS, 1, 4 }, { AT_CLAW, AD_PHYS, 1, 4 }, NO_ATTK },
- X 150, 1500, 0, MS_ROAR, MZ_GIGANTIC, M1_FLY | M1_SEE_INVIS |
- X M1_NOHANDS | M1_EGGS | M1_FIRE_RES | M1_GREEDY | M1_JEWELS | M1_MAGIC,
- X M2_HOSTILE | M2_STRONG | M2_NASTY | M2_CARNIVORE | M2_THICK_HIDE,
- X C(RED)},
- X { "orange dragon", S_DRAGON, 10, 9, -1, 20, 5, (G_GENO | 1),
- X { { AT_BREA, AD_SLEE, 4, 25 }, { AT_BITE, AD_PHYS, 3, 8 },
- X { AT_CLAW, AD_PHYS, 1, 4 }, { AT_CLAW, AD_PHYS, 1, 4 }, NO_ATTK },
- X 150, 1500, 0, MS_ROAR, MZ_GIGANTIC, M1_FLY | M1_SEE_INVIS |
- X M1_NOHANDS | M1_EGGS | M1_SLEE_RES | M1_GREEDY | M1_JEWELS | M1_MAGIC,
- X M2_HOSTILE | M2_STRONG | M2_NASTY | M2_CARNIVORE | M2_THICK_HIDE,
- X C(ORANGE_COLORED)},
- X { "white dragon", S_DRAGON, 10, 9, -1, 20, -5, (G_GENO | 1),
- X { { AT_BREA, AD_COLD, 4, 6 }, { AT_BITE, AD_PHYS, 3, 8 },
- X { AT_CLAW, AD_PHYS, 1, 4 }, { AT_CLAW, AD_PHYS, 1, 4 }, NO_ATTK },
- X 150, 1500, 0, MS_ROAR, MZ_GIGANTIC, M1_FLY | M1_SEE_INVIS |
- X M1_NOHANDS | M1_EGGS | M1_COLD_RES | M1_GREEDY | M1_JEWELS | M1_MAGIC,
- X M2_HOSTILE | M2_STRONG | M2_NASTY | M2_CARNIVORE | M2_THICK_HIDE,
- X C(WHITE)},
- X { "black dragon", S_DRAGON, 10, 9, -1, 20, -6, (G_GENO | 1),
- X { { AT_BREA, AD_DISN, 4, 10 }, { AT_BITE, AD_PHYS, 3, 8 },
- X { AT_CLAW, AD_PHYS, 1, 4 }, { AT_CLAW, AD_PHYS, 1, 4 }, NO_ATTK },
- X 150, 1500, 0, MS_ROAR, MZ_GIGANTIC, M1_FLY | M1_SEE_INVIS |
- X M1_NOHANDS | M1_EGGS | M1_GREEDY | M1_JEWELS | M1_MAGIC,
- X M2_HOSTILE | M2_STRONG | M2_NASTY | M2_CARNIVORE | M2_THICK_HIDE,
- X C(BLACK)},
- X { "blue dragon", S_DRAGON, 10, 9, -1, 20, -7, (G_GENO | 1),
- X { { AT_BREA, AD_ELEC, 4, 6 }, { AT_BITE, AD_PHYS, 3, 8 },
- X { AT_CLAW, AD_PHYS, 1, 4 }, { AT_CLAW, AD_PHYS, 1, 4 }, NO_ATTK },
- X 150, 1500, 0, MS_ROAR, MZ_GIGANTIC, M1_FLY | M1_SEE_INVIS |
- X M1_NOHANDS | M1_EGGS | M1_ELEC_RES | M1_GREEDY | M1_JEWELS | M1_MAGIC,
- X M2_HOSTILE | M2_STRONG | M2_NASTY | M2_CARNIVORE | M2_THICK_HIDE,
- X C(BLUE)},
- X { "green dragon", S_DRAGON, 10, 9, -1, 20, 6, (G_GENO | 1),
- X { { AT_BREA, AD_DRST, 4, 6 }, { AT_BITE, AD_PHYS, 3, 8 },
- X { AT_CLAW, AD_PHYS, 1, 4 }, { AT_CLAW, AD_PHYS, 1, 4 }, NO_ATTK },
- X 150, 1500, 0, MS_ROAR, MZ_GIGANTIC,
- X M1_FLY | M1_SEE_INVIS | M1_NOHANDS | M1_EGGS | M1_POIS | M1_POIS_RES |
- X M1_GREEDY | M1_JEWELS | M1_MAGIC,
- X M2_HOSTILE | M2_STRONG | M2_NASTY | M2_CARNIVORE | M2_THICK_HIDE,
- X C(GREEN)},
- X { "yellow dragon", S_DRAGON, 10, 9, -1, 20, 7, (G_GENO | 1),
- X { { AT_BREA, AD_ACID, 4, 6 }, { AT_BITE, AD_PHYS, 3, 8 },
- X { AT_CLAW, AD_PHYS, 1, 4 }, { AT_CLAW, AD_PHYS, 1, 4 }, NO_ATTK },
- X 150, 1500, 0, MS_ROAR, MZ_GIGANTIC,
- X M1_FLY | M1_SEE_INVIS | M1_NOHANDS | M1_EGGS | M1_POIS | M1_STON_RES |
- X M1_GREEDY | M1_JEWELS | M1_MAGIC,
- X M2_HOSTILE | M2_STRONG | M2_NASTY | M2_CARNIVORE | M2_THICK_HIDE,
- X C(YELLOW)},
- X/* Elementals */
- X { "air elemental", S_ELEMENTAL, 8, 36, 2, 30, 0, (G_NOCORPSE | 1),
- X { { AT_ENGL, AD_PHYS, 2, 10 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
- X 5, 0, 0, MS_SILENT, MZ_HUGE,
- X M1_NOEYES | M1_NOHANDS | M1_POIS_RES | M1_FLY,
- X M2_STRONG | M2_NOLIMBS, C(CYAN) },
- X { "fire elemental", S_ELEMENTAL, 8, 12, 2, 30, 0, (G_NOCORPSE | 1),
- X { { AT_CLAW, AD_FIRE, 3, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
- X 5, 0, 0, MS_SILENT, MZ_HUGE,
- X M1_NOEYES | M1_NOHANDS | M1_POIS_RES | M1_FLY | M1_FIRE_RES,
- X M2_STRONG | M2_NOLIMBS, C(YELLOW) },
- X { "earth elemental", S_ELEMENTAL, 8, 6, 2, 30, 0, (G_NOCORPSE | 1),
- X { { AT_CLAW, AD_PHYS, 4, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
- X 50, 0, 0, MS_SILENT, MZ_HUGE,
- X M1_WALLWALK | M1_NOEYES | M1_NOHANDS | M1_POIS_RES |
- X M1_STON_RES, M2_STRONG | M2_NOLIMBS | M2_THICK_HIDE, C(BROWN) },
- X { "water elemental", S_ELEMENTAL, 8, 6, 2, 30, 0, (G_NOCORPSE | 1),
- X { { AT_CLAW, AD_PHYS, 5, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
- X 50, 0, 0, MS_SILENT, MZ_HUGE,
- X M1_NOEYES | M1_NOHANDS | M1_POIS_RES | M1_SWIM,
- X M2_STRONG | M2_NOLIMBS, C(BLUE) },
- X/* Fungi */
- X { "violet fungus", S_FUNGUS, 3, 1, 7, 0, 0, (G_GENO | 2),
- X { { AT_TUCH, AD_PHYS, 1, 4 }, { AT_TUCH, AD_STCK, 0, 0 },
- X NO_ATTK, NO_ATTK, NO_ATTK }, 10, 100, 0, MS_SILENT, MZ_SMALL,
- X M1_NOEYES | M1_NOHANDS | M1_POIS_RES,
- X M2_HOSTILE | M2_NOLIMBS | M2_OMNIVORE, C(MAGENTA) },
- X { "brown mold", S_FUNGUS, 1, 0, 9, 0, 0, (G_GENO | 1),
- X { { AT_NONE, AD_COLD, 0, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
- X 5, 30, 0, MS_SILENT, MZ_SMALL, M1_NOEYES | M1_NOHANDS |
- X M1_POIS_RES | M1_COLD_RES, M2_HOSTILE | M2_NOLIMBS | M2_OMNIVORE,
- X C(BROWN)},
- X { "yellow mold", S_FUNGUS, 1, 0, 9, 0, 0, (G_GENO | 2),
- X { { AT_NONE, AD_STUN, 0, 4 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
- X 5, 30, 0, MS_SILENT, MZ_SMALL, M1_NOEYES | M1_NOHANDS |
- X M1_POIS | M1_POIS_RES, M2_HOSTILE | M2_NOLIMBS | M2_OMNIVORE,
- X C(YELLOW)},
- X { "green mold", S_FUNGUS, 1, 0, 9, 0, 0, (G_GENO | 1),
- X { { AT_NONE, AD_ACID, 0, 4 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
- X 5, 30, 0, MS_SILENT, MZ_SMALL, M1_NOEYES | M1_NOHANDS |
- X M1_POIS | M1_STON_RES, M2_HOSTILE | M2_NOLIMBS | M2_OMNIVORE,
- X C(GREEN)},
- X { "red mold", S_FUNGUS, 1, 0, 9, 0, 0, (G_GENO | 1),
- X { { AT_NONE, AD_FIRE, 0, 4 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
- X 5, 30, 0, MS_SILENT, MZ_SMALL, M1_NOEYES | M1_NOHANDS |
- X M1_POIS_RES | M1_FIRE_RES, M2_HOSTILE | M2_NOLIMBS | M2_OMNIVORE,
- X C(RED)},
- X/* Gnomes */
- X { "gnome", S_GNOME, 1, 6, 5, 4, 0, (G_GENO | G_SGROUP | 1),
- X { { AT_WEAP, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
- X 10, 100, 0, MS_ORC, MZ_SMALL,
- X M1_HUMANOID | M1_COLLECT, 0, C(HI_MON) },
- X { "gnome lord", S_GNOME, 3, 8, 4, 4, 0, (G_GENO | 2),
- X { { AT_WEAP, AD_PHYS, 1, 8 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
- X 15, 120, 0, MS_ORC, MZ_SMALL,
- X M1_HUMANOID | M1_COLLECT | M1_LORD, 0, C(HI_MON) },
- X { "gnome king", S_GNOME, 5, 10, 2, 20, 0, (G_GENO | 1),
- X { { AT_WEAP, AD_PHYS, 2, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
- X 20, 150, 0, MS_ORC, MZ_SMALL,
- X M1_HUMANOID | M1_COLLECT | M1_PRINCE, 0, C(HI_LORD) },
- X { "gnomish wizard", S_GNOME, 3, 10, 4, 10, 0, (G_GENO | 1),
- X { { AT_MAGC, AD_SPEL, 0, 0 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
- X 15, 120, 0, MS_ORC, MZ_SMALL,
- X M1_HUMANOID | M1_MAGIC, 0, C(HI_MON) },
- X#ifdef SPLITMON_1
- X};
- X#endif
- X#endif /* !SPLITMON_2 */
- END_OF_FILE
- if test 39921 -ne `wc -c <'src/monst.c1'`; then
- echo shar: \"'src/monst.c1'\" unpacked with wrong size!
- fi
- # end of 'src/monst.c1'
- echo shar: End of archive 14 \(of 15\).
- cp /dev/null ark14isdone
- MISSING=""
- for I in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ; do
- if test ! -f ark${I}isdone ; then
- MISSING="${MISSING} ${I}"
- fi
- done
- if test "${MISSING}" = "" ; then
- echo You have unpacked all 15 archives.
- rm -f ark[1-9]isdone ark[1-9][0-9]isdone
- else
- echo You still need to unpack the following archives:
- echo " " ${MISSING}
- fi
- ## End of shell archive.
- exit 0
-